#ifndef BORROWER_H
#define BORROWER_H

#include <string>
#include <list>
#include "Book_t.h"
using namespace std;

typedef string Name;
typedef string ID;



class Borrower_t{

	friend class Library_t;

public:
	Borrower_t(Name,ID);
	~Borrower_t();
	void borrowBook(Book_t*);
	void returnBook(Book_t*);

	const ID getID() const;
	const Name getName() const;
protected:
	/* We use a list of pointer to a book.
	 * For each instance of a book there is a unique ISBN associated with one and only one instacne of Book_t.
	 * Hence, it is sufficient to compare pointer values to find a book
	 */
	list<Book_t*> *list_of_books;

private:
	Name name;
	ID id;
	Borrower_t();
	Borrower_t& operator=(const Borrower_t& rhs );
	Borrower_t( const Borrower_t& other );


};


#endif